package com.cloud.api.domain.stats;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * <p>
 * OLAP
 * </p>
 *
 * @author haohaibo
 * @since 2023-12-29
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_vehicle_running_data")
@Schema(name = "VehicleRunningData", description = "车辆运行数据")
public class VehicleRunningData implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "时间 年月日")
    @TableField("dt")
    private LocalDate dt;

    @Schema(description = "vin")
    @TableField("vin")
    private String vin;

    @Schema(description = "总里程")
    @TableField("accumulative_mileage")
    private Double accumulativeMileage;

    @Schema(description = "运行里程")
    @TableField("running_mileage")
    private Double runningMileage;

    @Schema(description = "运行时间")
    @TableField("run_time")
    private Double runTime;

    @Schema(description = "充电时间")
    @TableField("charge_time")
    private Double chargeTime;

    @Schema(description = "车牌号")
    @TableField(exist = false)
    private String licenseNumber;

    @Schema(description = "组织机构")
    @TableField(exist = false)
    private String deptName;

    @Schema(description = "车型")
    @TableField(exist = false)
    private String modelName;

    @Schema(description = "平均里程")
    @TableField(exist = false)
    private Double aveMileage;

    @Schema(description = "行驶天数")
    @TableField(exist = false)
    private Integer runDays;

    @Schema(description = "停驶天数")
    @TableField(exist = false)
    private Integer stopDays;

    @Schema(description = "平均能耗")
    @TableField(exist = false)
    private Double aveConsumeEnergy;

    @Schema(description = "平均时速")
    @TableField(exist = false)
    private Double aveSpeed;

    @Schema(description = "充电电量")
    @TableField("charge")
    private Double chargePower;

    @Schema(description = "平均充电电量")
    @TableField(exist = false)
    private Double aveChargePower;

    @Schema(description = "车辆总数")
    @TableField(exist = false)
    private Integer vinCount;

    @Schema(description = "车辆类型")
    @TableField(exist = false)
    private String vehicleType;
}
